package com.mall4j.cloud.product.service;


import com.mall4j.cloud.product.dto.CategoryDTO;
import com.mall4j.cloud.product.model.Category;
import com.mall4j.cloud.api.product.vo.CategoryVO;

import java.util.List;

/**
 * 分类
 *
 * @author JCM
 * @date 2023-04-22 13:20:00
 */
public interface CategoryService {


    /**
     * 获取所有分类
     * @param categoryDTO 参数列表
     * @return 分类列表
     */
    List<CategoryVO> list(CategoryDTO categoryDTO);

    /**
     * 根据分类id获取分类
     *
     * @param categoryId 分类id
     * @return 分类
     */
    CategoryVO getByCategoryId(Long categoryId);

    /**
     * 根据父id获取分类
     *
     * @param parentId 父id
     * @return 子分类集合
     */
    List<CategoryVO> getByParentId(Long parentId);


    /**
     * 保存分类
     * @param category 分类
     */
    void save(Category category);


    /**
     * 更新分类
     * @param category 分类
     */
    void update(Category category);


    /**
     * 根据分类id删除分类
     * @param categoryId 分类id
     * @param shopId 店铺id
     */
    void deleteById(Long categoryId, Long shopId);

    /**
     * 获取所有一级分类信息
     * @return 一级分类信息
     */
    List<CategoryVO> listByOneLevel();

    /**
     * 根据上级id，获取子分类id列表
     * @param categoryId
     * @return
     */
    List<Long> listCategoryId(Long categoryId);
}
